[INFO] fetching crate tirith 0.2.10...
[INFO] testing tirith-0.2.10 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate tirith 0.2.10 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate tirith 0.2.10
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate tirith 0.2.10
[INFO] tweaked toml for crates.io crate tirith 0.2.10 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tirith 0.2.10 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tirith 0.2.10 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d25896f7212cf93bc6f35d333c692c3270d60190956bae03d41fdff468db6802
[INFO] running `Command { std: "docker" "start" "-a" "d25896f7212cf93bc6f35d333c692c3270d60190956bae03d41fdff468db6802", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d25896f7212cf93bc6f35d333c692c3270d60190956bae03d41fdff468db6802", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d25896f7212cf93bc6f35d333c692c3270d60190956bae03d41fdff468db6802", kill_on_drop: false }`
[INFO] [stdout] d25896f7212cf93bc6f35d333c692c3270d60190956bae03d41fdff468db6802
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 441e4f9902ac4a02f74c75c6ca79150084c0e31a32656c66b231ec85511020a9
[INFO] running `Command { std: "docker" "start" "-a" "441e4f9902ac4a02f74c75c6ca79150084c0e31a32656c66b231ec85511020a9", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling time v0.3.37
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling rangemap v1.7.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling etcetera v0.8.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling uuid v1.20.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling unicode-script v0.5.8
[INFO] [stderr]    Compiling roff v0.2.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling clap_mangen v0.2.31
[INFO] [stderr]    Compiling clap_complete v4.5.65
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling lopdf v0.34.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tirith-core v0.2.10
[INFO] [stderr]    Compiling tirith v0.2.10 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.95s
[INFO] running `Command { std: "docker" "inspect" "441e4f9902ac4a02f74c75c6ca79150084c0e31a32656c66b231ec85511020a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "441e4f9902ac4a02f74c75c6ca79150084c0e31a32656c66b231ec85511020a9", kill_on_drop: false }`
[INFO] [stdout] 441e4f9902ac4a02f74c75c6ca79150084c0e31a32656c66b231ec85511020a9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4c9a7ddbc163370bc498ae6beca0e2d860903696bed1cce707101ae7576d007e
[INFO] running `Command { std: "docker" "start" "-a" "4c9a7ddbc163370bc498ae6beca0e2d860903696bed1cce707101ae7576d007e", kill_on_drop: false }`
[INFO] [stderr]    Compiling tirith v0.2.10 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.83s
[INFO] running `Command { std: "docker" "inspect" "4c9a7ddbc163370bc498ae6beca0e2d860903696bed1cce707101ae7576d007e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c9a7ddbc163370bc498ae6beca0e2d860903696bed1cce707101ae7576d007e", kill_on_drop: false }`
[INFO] [stdout] 4c9a7ddbc163370bc498ae6beca0e2d860903696bed1cce707101ae7576d007e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fc1ea2f39836d7ce14e27a77b65511f3fa2fdc3cfc222e0cf63107007aef846c
[INFO] running `Command { std: "docker" "start" "-a" "fc1ea2f39836d7ce14e27a77b65511f3fa2fdc3cfc222e0cf63107007aef846c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tirith-365e4d468ff4ea25)
[INFO] [stdout] 
[INFO] [stdout] running 155 tests
[INFO] [stdout] test cli::gateway::tests::test_audit_entry_serializes_valid_json ... ok
[INFO] [stdout] test cli::gateway::tests::test_batch_empty ... ok
[INFO] [stdout] test cli::gateway::tests::test_batch_invalid_id_types ... ok
[INFO] [stdout] test cli::gateway::tests::test_batch_notifications_only ... ok
[INFO] [stdout] test cli::gateway::tests::test_batch_with_ids ... ok
[INFO] [stdout] test cli::gateway::tests::test_bounded_read_exact_limit ... ok
[INFO] [stdout] test cli::gateway::tests::test_bounded_read_no_trailing_newline ... ok
[INFO] [stdout] test cli::gateway::tests::test_bounded_read_normal ... ok
[INFO] [stdout] test cli::gateway::tests::test_audit_entry_escapes_special_chars ... ok
[INFO] [stdout] test cli::gateway::tests::test_bounded_read_oversize ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_fail_mode ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_warn_action ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_regex ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_rejects_zero_max_message_bytes ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_valid_forward_closed ... ok
[INFO] [stdout] test cli::gateway::tests::test_fail_mode_deny_extraction_failed_no_double_prefix ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_json_pointer ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_defaults ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_json_pointer_trailing_tilde ... ok
[INFO] [stdout] test cli::gateway::tests::test_fail_mode_deny_no_double_prefix ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_array_id_rejected ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_object_id_rejected ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_boolean_id_rejected ... ok
[INFO] [stdout] test cli::gateway::tests::test_invalid_id_request_response_wire_format ... ok
[INFO] [stdout] test cli::gateway::tests::test_extraction_failed ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_null_id_preserved ... ok
[INFO] [stdout] test cli::gateway::tests::test_forward_to_broken_writer_returns_error ... ok
[INFO] [stdout] test cli::gateway::tests::test_fail_mode_deny_reports_elapsed_ms ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_bad_json_pointer_invalid_escape ... ok
[INFO] [stdout] test cli::gateway::tests::test_deny_response_uses_wire_format_enums ... ok
[INFO] [stdout] test cli::gateway::tests::test_bounded_read_preserves_invalid_utf8 ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_with_id ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_notification ... ok
[INFO] [stdout] test cli::gateway::tests::test_json_pointer_against_params ... ok
[INFO] [stdout] test cli::gateway::tests::test_config_parse_valid ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_string_id_preserved ... ok
[INFO] [stdout] test cli::gateway::tests::test_json_pointer_missing ... ok
[INFO] [stdout] test cli::gateway::tests::test_json_pointer_root ... ok
[INFO] [stdout] test cli::gateway::tests::test_recursion_depth ... ok
[INFO] [stdout] test cli::init::tests::normalize_shell_name_no_false_positive_on_gnu ... ok
[INFO] [stdout] test cli::init::tests::normalize_shell_name_from_paths_and_login_shells ... ok
[INFO] [stdout] test cli::gateway::tests::test_not_guarded_different_method ... ok
[INFO] [stdout] test cli::gateway::tests::test_not_guarded_different_tool ... ok
[INFO] [stdout] test cli::init::tests::normalize_shell_name_rejects_unknown_values ... ok
[INFO] [stdout] test cli::gateway::tests::test_guarded_notification_extraction_failed ... ok
[INFO] [stdout] test cli::gateway::tests::test_no_id_notification_not_guarded ... ok
[INFO] [stdout] test cli::gateway::tests::test_json_pointer_escape ... ok
[INFO] [stdout] test cli::init::tests::normalize_shell_name_supports_case_insensitive_names ... ok
[INFO] [stdout] test cli::gateway::tests::test_invalid_guarded_id_returns_local_error ... ok
[INFO] [stdout] test cli::init::tests::normalize_shell_name_supports_nushell ... ok
[INFO] [stdout] test cli::init::tests::quote_helpers_escape_shell_metacharacters ... ok
[INFO] [stdout] test cli::gateway::tests::test_process_object_to_broken_writer_returns_error ... ok
[INFO] [stdout] test cli::last_trigger::tests::test_redact_assignment_values_scrubs_exports ... ok
[INFO] [stdout] test cli::last_trigger::tests::test_redact_assignment_values_scrubs_quoted_values ... ok
[INFO] [stdout] test cli::last_trigger::tests::test_last_trigger_no_predictable_tmp ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_creates_new ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_drift_error_without_force ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::atomic_write_creates_file ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::validate_target_dir_accepts_normal_path ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::write_hook_script_errors_on_different_content_without_force ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::atomic_write_refuses_symlink ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::write_hook_script_refuses_symlink ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::write_hook_script_skip_on_same_content ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::write_hook_script_overwrites_with_force ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_multiple_matchers_error_without_force ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_force_replaces_only_tirith_hook ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::validate_target_dir_rejects_symlink_escape ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::backup_creates_and_retains_five ... ok
[INFO] [stdout] test cli::setup::merge::tests::claude_inner_idempotent ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_force_handles_malformed_matcher_hooks ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_skip_if_identical ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_preserves_other_hooks_in_same_matcher ... ok
[INFO] [stdout] test cli::setup::merge::tests::hooks_json_skip_if_identical ... ok
[INFO] [stdout] test cli::setup::merge::tests::claude_settings_creates_new ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_drift_error_without_force ... ok
[INFO] [stdout] test cli::setup::merge::tests::hooks_json_creates_new_file_with_version ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_dry_run_no_write ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_multiple_matchers_force_deduplicates ... ok
[INFO] [stdout] test cli::setup::fs_helpers::tests::atomic_write_preserves_permissions ... ok
[INFO] [stdout] test cli::setup::merge::tests::claude_settings_preserves_other_matchers ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_creates_new_file ... ok
[INFO] [stdout] test cli::setup::merge::tests::claude_inner_preserves_other_hooks_in_bash_matcher ... ok
[INFO] [stdout] test cli::setup::merge::tests::hooks_json_drift_error_without_force ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_preserves_other_matchers ... ok
[INFO] [stdout] test cli::setup::merge::tests::gemini_settings_force_consolidates_mixed_hooks_from_duplicates ... ok
[INFO] [stdout] test cli::setup::merge::tests::hooks_json_preserves_other_hooks ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_drift_warning_in_dry_run ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_dry_run_force_no_backup ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_dry_run_no_write ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_skip_if_identical ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_preserves_existing_servers ... ok
[INFO] [stdout] test cli::setup::merge::tests::remove_managed_block_errors_on_orphan_end ... ok
[INFO] [stdout] test cli::setup::merge::tests::remove_managed_block_removes_block ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_vscode_servers_key ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::detects_eval_form ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_vscode_preserves_existing_servers ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::detects_fish_form ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::drift_detected_when_content_differs ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::end_marker_exact_match_only ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_skip_if_block_exists ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_redirection_and_glob_chars ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::nested_begin_markers ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_preserves_jsonc_features ... ok
[INFO] [stdout] test cli::setup::merge::tests::mcp_json_force_replaces_entry ... ok
[INFO] [stdout] test cli::setup::merge::tests::remove_managed_block_errors_on_missing_end ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_hard_error_on_existing_hooks_key ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::extract_no_block ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::missing_end_marker ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::extract_existing_block ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::orphan_end_marker ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_dollar_sign ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_creates_managed_block ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_preserves_content_outside_block ... ok
[INFO] [stdout] test cli::setup::merge::tests::vscode_settings_force_preserves_jsonc_outside_block ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_single_quote_posix ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_spaces_powershell ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_spaces_fish ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_spaces_posix ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_simple_name_unchanged ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::remove_multiple_blocks ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::remove_no_blocks ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::remove_preserves_surrounding_content ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::remove_single_block ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::skips_commented_line ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::skips_empty_file ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::valid_no_blocks ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::valid_single_block ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::dry_run_no_write ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::guard_blocks_without_bypass_env ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::multiple_blocks_deduped_with_force ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::install_force_replaces_block ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::install_idempotent_skips_second_run ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::install_preserves_existing_content ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::tirith_bin_placeholder_replaced ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::vscode_bypass_skips_guard_and_continues_zshenv ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::install_creates_zshenv_with_guard ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_missing_end_marker ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::tirith_skip_bypass_skips_guard_and_continues_zshenv ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::integration::multiple_blocks_error_without_force ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_valid_multiple_blocks ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_valid_no_blocks ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_valid_single_block ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::remove_multiple_blocks ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::remove_no_blocks ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::remove_single_block ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::remove_preserves_surrounding_content ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::valid_zsh_syntax ... ok
[INFO] [stdout] test cli::setup::tools::tests::gemini_cli_home_env_override_writes_correct_path ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_orphan_end_marker ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::invalid_zsh_syntax ... ok
[INFO] [stdout] test cli::setup::tools::tests::env_override_skips_containment_check ... ok
[INFO] [stdout] test cli::setup::tools::tests::pi_coding_agent_dir_env_override_writes_correct_path ... ok
[INFO] [stdout] test cli::setup::shell_profile::tests::quote_path_with_single_quote_powershell ... ok
[INFO] [stdout] test cli::setup::zshenv::tests::pairing_nested_begin_markers ... ok
[INFO] [stdout] test cli::last_trigger::tests::test_redact_command_truncates_after_scrubbing ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_integration.rs (/opt/rustwide/target/debug/deps/cli_integration-e367fc1485b6df3f)
[INFO] [stdout] test result: ok. 155 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 54 tests
[INFO] [stdout] test bash_hook_runtime_delivery_failure_degrades_in_pty ... ok
[INFO] [stdout] test bash_hook_unexpected_rc_degrades_in_pty ... ok
[INFO] [stdout] test bash_hook_defaults_to_preexec_in_ssh_sessions ... ok
[INFO] [stdout] test bash_hook_enter_default_outside_ssh ... ok
[INFO] [stdout] test bash_hook_noninteractive_mode_is_enter ... ok
[INFO] [stdout] test bash_hook_noninteractive_no_debug_trap ... ok
[INFO] [stdout] test bash_hook_honors_persistent_safe_mode ... ok
[INFO] [stdout] test bash_hook_unexpected_rc_logic_test ... ok
[INFO] [stdout] test bash_hook_respects_explicit_mode_override_in_ssh_sessions ... ok
[INFO] [stdout] test bash_hook_startup_gate_degrade_persists ... ok
[INFO] [stdout] test bash_hook_explicit_override_trumps_safe_mode ... ok
[INFO] [stdout] test bash_hook_noninteractive_no_safe_mode_flag ... ok
[INFO] [stdout] test bash_hook_prompt_hook_reattaches ... ok
[INFO] [stdout] test diff_url ... ok
[INFO] [stdout] test embedded_shell_hooks_match_repo_hooks ... ok
[INFO] [stdout] test fish_unexpected_rc_branch_logic_test ... ok
[INFO] [stdout] test init_bash_output ... ok
[INFO] [stdout] test init_unsupported_shell ... ok
[INFO] [stdout] test init_zsh_output ... ok
[INFO] [stdout] test auto_checkpoint_cli_wiring_compiles_and_runs ... ok
[INFO] [stdout] test check_clean_command_allows ... ok
[INFO] [stdout] test bypass_in_interactive_mode ... ok
[INFO] [stdout] test check_iwr_pipe_iex_no_tirith_run_hint ... ok
[INFO] [stdout] test check_json_clean_output ... ok
[INFO] [stdout] test paste_clean_text_allows ... ok
[INFO] [stdout] test check_powershell_iwr_iex_blocks ... ok
[INFO] [stdout] test paste_oversized_input_rejected ... ok
[INFO] [stdout] test json_includes_observability ... ok
[INFO] [stdout] test paste_process_level_bypass_still_honored_with_interactive_flag ... ok
[INFO] [stdout] test check_curl_pipe_bash_blocks ... ok
[INFO] [stdout] test receipt_list_empty ... ok
[INFO] [stdout] test receipt_verify_invalid_sha256_rejected ... ok
[INFO] [stdout] test check_http_to_sink_blocks ... ok
[INFO] [stdout] test check_curl_pipe_bash_shows_remediation_hint ... ok
[INFO] [stdout] test check_json_output_redacts_assignment_values_in_findings ... ok
[INFO] [stdout] test check_powershell_invoke_expression_blocks ... ok
[INFO] [stdout] test check_shortened_url_warns ... ok
[INFO] [stdout] test why_no_trigger ... ok
[INFO] [stdout] test paste_trailing_cr_allows ... ok
[INFO] [stdout] test zsh_unexpected_rc_branch_logic_test ... ok
[INFO] [stdout] test score_json_output ... ok
[INFO] [stdout] test check_last_trigger_redacts_assignment_values_in_findings ... ok
[INFO] [stdout] test score_suspicious_url ... ok
[INFO] [stdout] test tier1_exit_fast_for_ls ... ok
[INFO] [stdout] test paste_ansi_escape_blocks ... ok
[INFO] [stdout] test tier3_reached_for_curl ... ok
[INFO] [stdout] test score_clean_url ... ok
[INFO] [stderr] tirith: BLOCKED
[INFO] [stderr]   [HIGH] curl_pipe_shell — Pipe to interpreter: curl | sh
[INFO] [stderr]     Command pipes output from 'curl' directly to interpreter 'sh'. Downloaded content will be executed without inspection.
[INFO] [stderr]   Safer: tirith run https://example.com/install.sh  — or: vet https://example.com/install.sh  (https://getvet.sh)
[INFO] [stderr]   Bypass: prefix your command with TIRITH=0 (applies to that command only)
[INFO] [stdout] test paste_inline_bypass_not_honored_with_interactive_flag ... ok
[INFO] [stderr] tirith: BLOCKED
[INFO] [stderr]   [HIGH] curl_pipe_shell — Pipe to interpreter: curl | sh
[INFO] [stderr]     Command pipes output from 'curl' directly to interpreter 'sh'. Downloaded content will be executed without inspection.
[INFO] [stderr]   Safer: tirith run https://example.com/install.sh  — or: vet https://example.com/install.sh  (https://getvet.sh)
[INFO] [stderr]   Bypass: prefix your command with TIRITH=0 (applies to that command only)
[INFO] [stdout] test paste_inline_bypass_requires_interactive_mode ... ok
[INFO] [stdout] test check_json_output ... ok
[INFO] [stderr] tirith: BLOCKED
[INFO] [stderr]   [HIGH] pipe_to_interpreter — Pipe to interpreter: env | sh
[INFO] [stderr]     Command pipes output from 'env' directly to interpreter 'sh'. Downloaded content will be executed without inspection.
[INFO] [stderr]   Bypass: prefix your command with TIRITH=0 (applies to that command only)
[INFO] [stdout] test paste_env_wrapper_bypass_not_honored_with_interactive_flag ... ok
[INFO] [stdout] test paste_windows_crlf_allows ... ok
[INFO] [stdout] test paste_embedded_cr_blocks ... ok
[INFO] [stdout] test check_wrapped_tirith_run_preserves_sink_rules ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.71s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fc1ea2f39836d7ce14e27a77b65511f3fa2fdc3cfc222e0cf63107007aef846c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc1ea2f39836d7ce14e27a77b65511f3fa2fdc3cfc222e0cf63107007aef846c", kill_on_drop: false }`
[INFO] [stdout] fc1ea2f39836d7ce14e27a77b65511f3fa2fdc3cfc222e0cf63107007aef846c
